package aceim.api.dataentity;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import aceim.api.dataentity.tkv.MessageAttachment;
import android.os.Parcel;
import android.os.Parcelable;
/**
* Text message/
*/
public class TextMessage extends Message {
/**
* List of message attachments. Thread-safe.
*/
private final List<MessageAttachment> attachments;
@SuppressWarnings("unchecked")
public TextMessage(Parcel arg0) {
super(arg0);
ArrayList<MessageAttachment> list = arg0.readArrayList(MessageAttachment.class.getClassLoader());
attachments = Collections.synchronizedList(list);
}
public TextMessage(byte serviceId, String from){
super(serviceId, from);
attachments = Collections.synchronizedList(new ArrayList<MessageAttachment>());
}
@Override
public void writeToParcel(Parcel dest, int flags) {
super.writeToParcel(dest, flags);
dest.writeList(attachments);
}
public static final Parcelable.Creator<TextMessage> CREATOR = new Parcelable.Creator<TextMessage>(){
@Override
public TextMessage createFromParcel(Parcel arg0) {
//Omitting classname variable used for class hierarchy parcelable support
arg0.readString();
return new TextMessage(arg0);
}
@Override
public TextMessage[] newArray(int size) {
return new TextMessage[size];
}
};
/**
* @return the attachments
*/
public List<MessageAttachment> getAttachments() {
return attachments;
}
}